Amazon ECSサービスの新しいDAEMONタイプでECSインスタンスごとにコンテナを配置する
ども、大瀧です。 AWSのDockerコンテナ管理サービスAmazon ECSの管理画面を眺めていたら、ECSサービスの設定画面にサービスタイプという項目が追加されていました。本記事ではサービスタイプとして新たに追加されたDAEMONタイプをご紹介します。
ECSサービスとDAEMONタイプ
ECSではDockerコンテナの実行数や配置を管理するECSサービスという機能があり、従来はDockerを実行するホスト(ECSインスタンス)の配置ルールをある程度決める一方で、1ホスト1コンテナと配置する仕組みがありませんでした。今回追加されたDAEMONタイプは、ホストの増減に合わせて1コンテナずつ実行する新しいECSサービスの設定です。なお、DAEMONタイプの追加に伴い、従来のルールベースのECSサービスはREPLICAタイプと分類されるようになりました。
設定方法と動作確認
- 動作確認環境 : AWS東京リージョン
ECSサービスのサービスタイプは、サービスの作成時に「Service Type」で選択します。DAEMONを選択し、サービスを作成します。
クラスタのECSインスタンス数は2なので、自動でサービスの必要タスク数が2になり、タスク(Dockerコンテナ)が2つ実行されました。きちんと動作していますね。
ちょっと意地悪してみましょう。実行中のタスクの1つを停止してしばらく待つと。。。
保留中の数が1になり、新しいコンテナが補充されました。
さらにクラスタのECSインスタンスを2→3台に増やしてみます。
しばらくすると。。。
必要数と実行中の数が3に増え、やはりコンテナが補充されました!
制限事項
DAEMONタイプの利用には、以下の制限事項があります。
- Fargateはサポートしない
- Classic Load Balancerはサポートしない
まとめ
Amazon ECSサービスの新しいDAEMONタイプでECSインスタンスごとにコンテナを配置する様子をご紹介しました。ECSの運用ではログエージェントなどインスタンスごとに置きたいコンテナがいろいろあると思いますので、DAEMONタイプをどんどん活用していきましょう!
参考URL
- Amazon ECS Adds Daemon Scheduling
- Services - Amazon Elastic Container Service (6/14現在、英語ページのみDAEMONタイプについて掲載)